var e, t, n = "function" == typeof Map ? new Map : (e = [], t = [], {
    has: function (t) {
        return e.indexOf(t) > -1
    }, get: function (n) {
        return t[e.indexOf(n)]
    }, set: function (n, o) {
        -1 === e.indexOf(n) && (e.push(n), t.push(o))
    }, delete: function (n) {
        var o = e.indexOf(n);
        o > -1 && (e.splice(o, 1), t.splice(o, 1))
    }
}), o = function (e) {
    return new Event(e, {bubbles: !0})
};
try {
    new Event("test")
} catch (e) {
    o = function (e) {
        var t = document.createEvent("Event");
        return t.initEvent(e, !0, !1), t
    }
}

function r(e) {
    var t = n.get(e);
    t && t.destroy()
}

function i(e) {
    var t = n.get(e);
    t && t.update()
}

var l = null;
"undefined" == typeof window || "function" != typeof window.getComputedStyle ? ((l = function (e) {
    return e
}).destroy = function (e) {
    return e
}, l.update = function (e) {
    return e
}) : ((l = function (e, t) {
    return e && Array.prototype.forEach.call(e.length ? e : [e], function (e) {
        return function (e) {
            if (e && e.nodeName && "TEXTAREA" === e.nodeName && !n.has(e)) {
                var t, r = null, i = null, l = null, d = function () {
                    e.clientWidth !== i && c()
                }, a = function (t) {
                    window.removeEventListener("resize", d, !1), e.removeEventListener("input", c, !1), e.removeEventListener("keyup", c, !1), e.removeEventListener("autosize:destroy", a, !1), e.removeEventListener("autosize:update", c, !1), Object.keys(t).forEach(function (n) {
                        e.style[n] = t[n]
                    }), n.delete(e)
                }.bind(e, {
                    height: e.style.height,
                    resize: e.style.resize,
                    overflowY: e.style.overflowY,
                    overflowX: e.style.overflowX,
                    wordWrap: e.style.wordWrap
                });
                e.addEventListener("autosize:destroy", a, !1), "onpropertychange" in e && "oninput" in e && e.addEventListener("keyup", c, !1), window.addEventListener("resize", d, !1), e.addEventListener("input", c, !1), e.addEventListener("autosize:update", c, !1), e.style.overflowX = "hidden", e.style.wordWrap = "break-word", n.set(e, {
                    destroy: a,
                    update: c
                }), "vertical" === (t = window.getComputedStyle(e, null)).resize ? e.style.resize = "none" : "both" === t.resize && (e.style.resize = "horizontal"), r = "content-box" === t.boxSizing ? -(parseFloat(t.paddingTop) + parseFloat(t.paddingBottom)) : parseFloat(t.borderTopWidth) + parseFloat(t.borderBottomWidth), isNaN(r) && (r = 0), c()
            }

            function u(t) {
                var n = e.style.width;
                e.style.width = "0px", e.style.width = n, e.style.overflowY = t
            }

            function s() {
                if (0 !== e.scrollHeight) {
                    var t = function (e) {
                        for (var t = []; e && e.parentNode && e.parentNode instanceof Element;) e.parentNode.scrollTop && t.push({
                            node: e.parentNode,
                            scrollTop: e.parentNode.scrollTop
                        }), e = e.parentNode;
                        return t
                    }(e), n = document.documentElement && document.documentElement.scrollTop;
                    e.style.height = "", e.style.height = e.scrollHeight + r + "px", i = e.clientWidth, t.forEach(function (e) {
                        e.node.scrollTop = e.scrollTop
                    }), n && (document.documentElement.scrollTop = n)
                }
            }

            function c() {
                s();
                var t = Math.round(parseFloat(e.style.height)), n = window.getComputedStyle(e, null),
                    r = "content-box" === n.boxSizing ? Math.round(parseFloat(n.height)) : e.offsetHeight;
                if (r < t ? "hidden" === n.overflowY && (u("scroll"), s(), r = "content-box" === n.boxSizing ? Math.round(parseFloat(window.getComputedStyle(e, null).height)) : e.offsetHeight) : "hidden" !== n.overflowY && (u("hidden"), s(), r = "content-box" === n.boxSizing ? Math.round(parseFloat(window.getComputedStyle(e, null).height)) : e.offsetHeight), l !== r) {
                    l = r;
                    var i = o("autosize:resized");
                    try {
                        e.dispatchEvent(i)
                    } catch (e) {
                    }
                }
            }
        }(e)
    }), e
}).destroy = function (e) {
    return e && Array.prototype.forEach.call(e.length ? e : [e], r), e
}, l.update = function (e) {
    return e && Array.prototype.forEach.call(e.length ? e : [e], i), e
});
var d = l;
export default d;
